package com.eclink.iot.tcp.virtualdevice.message;


import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MessageFactory {

    public static Map<String, PingMessage> pingMessageMap = new HashMap<>();

    public static Map<String, RfidMessage> rfidMessageMap = new HashMap<>();

    public static List<Byte> generatePingMessage(String uuid) {

        PingMessage pingMessage;
        if (pingMessageMap.containsKey(uuid)) {
            pingMessage = pingMessageMap.get(uuid);
        } else {
            pingMessage = new PingMessage(uuid);
            pingMessageMap.put(uuid, pingMessage);
        }
        pingMessage.refreshRuntime();
        return pingMessage.getBytes();
    }

    public static List<Byte> generateRfidMessage(String uuid, String tag) {
        RfidMessage rfidMessage;
        if (rfidMessageMap.containsKey(uuid)) {
            rfidMessage = rfidMessageMap.get(uuid);
        } else {
            rfidMessage = new RfidMessage();
            rfidMessageMap.put(uuid, rfidMessage);
        }
        rfidMessage.setEpc(tag);
        return rfidMessage.getBytes();
    }

}
